Methods and systems for notifying clients concerning electronic presentations

ABSTRACT

Methods and systems for enabling users to register for notifications pertaining to electronic presentations of interest are described. The inventive methods and systems enable users to monitor many different electronic presentations without physically connecting to them for continuous play. Users can opt to monitor for the occurrence of an electronic presentation itself, or for events that might occur within various electronic presentations. The events can be monitored live through the use of meta information that is generated as the electronic broadcast is about to be, or is being broadcast. The meta information can be generated manually or automatically.

RELATED APPLICATION

[0001] This application is a continuation of and claims priority to U.S.patent application Ser. No. 09/465,533, filed on Dec. 16, 1999, thedisclosure of which is incorporated by reference herein.

TECHNICAL FIELD

[0002] The present invention relates to interactive entertainmentsystems, such as interactive television or interactive computing networksystems, and to electronic program guides which operate in conjunctionwith these systems. In particular, the invention relates to methods andsystems for notifying clients concerning electronic presentations thatare being or are about to be broadcast.

BACKGROUND

[0003] Television viewers are very familiar with printed programmingschedules that appear in daily newspapers or weekly magazines, such asTV Guide®. The printed program guide lists the various television showsin relation to their scheduled viewing time on a day-to-day basis.

[0004] Cable TV systems often include a channel with a video broadcastof the printed program guide. The cable channel is dedicated todisplaying listings of programs available on the different availablechannels. The listings are commonly arranged in a grid. Each column ofthe grid represents a particular time slot, such as 4:00 p.m. to 4:30p.m. Each row represents a particular broadcast or cable channel, suchas ABC, PBS, or ESPN. The various scheduled programs or shows arearranged within the rows and columns, indicating the channels and timesat which they can be found. The grid is continuously scrolled verticallyso that a viewer can scan a continuously refreshing set of programswithin three or four time slots.

[0005] Newer, interactive cable distribution systems feature electronicprogram guides (EPGs) which function somewhat similar to the broadcastprogram listing channels described above. Rather than scrollingautomatically, however, an EPG allows a viewer to use a remote controldevice to scroll as desired both horizontally and vertically through aprogram grid. This functionality utilizes the two-way communicationscapabilities of interactive cable systems.

[0006] The EPG is typically implemented in software which runs on aset-top box (STB) connected between a TV and a cable system home entryline. When scrolling to a new column or row, the set-top box inserts theappropriate programming information into each new row or column. Thisinformation is either cached at the STB, or requested from the cablesystem's headend.

[0007] Printed programming schedules, video broadcasts of programmingschedules and EPGs all suffer a drawback in that a user who isinterested in viewing a particular program must be diligent inmonitoring for the program of interest so that they do not miss it. Forexample, a user must physically review printed or broadcast programmingschedules, as well as EPGs in order to find a particular program ofinterest and the time when it is going to be broadcast. They must thenbe diligent in remembering when the show is being broadcast so that theycan view it. Typically, and because programming guides change regularly(e.g. weekly or monthly), users must continuously consult the newprogramming guides to see what shows have been scheduled for subsequenttime periods. Having to regularly and diligently consult programmingguides can be inconvenient for users and can take them away fromactivities where their time might be more productively spent.

[0008] This problem is not, however, confined to the world oftelevision. Specifically, there are other media over which “programs” ofinterest or, more broadly, “electronic presentations” are broadcast. Forexample, electronic presentations can be broadcast over a network suchas the Internet and viewed on client viewing devices such as personalcomputers. An example of such an electronic presentation includes,without limitation, streaming multimedia broadcasts (e.g. audio, video,graphical, etc.). With a wide variety of sources of electronicpresentations, it can become a daunting task for a user to sift throughall of the potential presentations to find the ones that they want toview.

[0009] In addition, many times a user will want only to view certainevents within a particular presentation and not the whole presentationitself. Yet, in order to view the events of interest, a user musttypically monitor the entire presentation or at least a large portion ofit. For example, a user might only be interested, when watching afootball game, in viewing third downs, touchdowns, half time andend-of-game shows. As another example, a user might be interested in aparticular streaming multimedia conference of CEOs of high techcompanies, but may only want to hear Bill Gates speak. If the user doesnot know specifically when Bill Gates is to speak, then they may have towatch a good portion of the presentation. As can be appreciated, havingto watch an entire presentation in order to view only those portions ofparticular interest is wasteful.

[0010] Accordingly, this invention arose out of concerns associated withimproving the user experience insofar as being able to efficientlyselect and view one or more electronic presentations.

SUMMARY

[0011] Methods and systems for enabling users to register fornotifications pertaining to electronic presentations of interest aredescribed. The inventive methods and systems enable users to monitormany different electronic presentations without physically connecting tothem for continuous play. Users can opt to monitor for the occurrence ofan electronic presentation itself, or for events that might occur withinvarious electronic presentations. The events can be monitored livethrough the use of meta information that is generated as the electronicbroadcast is about to be, or is being broadcast. The meta informationcan be generated manually or automatically.

[0012] In one aspect, one or more notification servers are provided thatlink various sources of electronic presentations and client processingdevices that are operated by users. The notification server(s) managesone or more databases. The databases are used to maintain and updateuser information that describes electronic presentations that may be ofparticular interest to a user, as well as source information (metainformation) that describes aspects of the electronic presentation thatthe source is broadcasting. The meta information can be received fairlycontinuously throughout the broadcast of a presentation so that thesource information that is maintained by the notification server can beupdated. An analysis/search engine uses the source information to searchthe user information to identify users that have registered fornotifications related to the current source information. If a user isfound to have registered for a notification associated with the currentsource information, the notification server generates and sends such anotification. The user, once notified, can opt to connect directly tothe source of the electronic presentation so that they can received acontinuous feed of the presentation.

[0013] The user information that is registered with the notificationserver can include many different types of data including topical datathat can describe topics of interest, key word data that describes keywords of interest, and names of particular individuals to name just afew. Thus, a user is not required to register for notifications basedonly upon the name of a particular presentation.

[0014] Other aspects of the invention include unique user interfacesthat enable users to both register for the notifications and track theelectronic presentations that are currently being monitored by thenotification server.

BRIEF DESCRIPTION OF THE DRAWINGS

[0015]FIG. 1 is a diagram that illustrates a network system andenvironment in accordance with one embodiment of the invention.

[0016]FIG. 2 shows a general example of a computer that can be used inimplementation of one or more embodiments of the invention.

[0017]FIG. 3 is a block diagram of an exemplary notification server,source and database in more detail.

[0018]FIG. 4 is a diagram of an exemplary user information database inmore detail.

[0019]FIG. 5 is a diagram of an exemplary live content database in moredetail.

[0020]FIG. 6 is a flow diagram that describes steps in a method inaccordance with one embodiment of the invention.

[0021]FIG. 7 is a block diagram of an exemplary user interface inaccordance with one embodiment of the invention.

[0022]FIG. 8 is a diagram of a display that can be rendered on a clientprocessing device using the user interface of FIG. 7.

[0023]FIG. 9 is a diagram of another display that can be rendered on aclient processing device using the user interface of FIG. 7.

DETAILED DESCRIPTION

[0024] Exemplary Network Structure

[0025] Principles of the invention described below can be implemented inconnection with any suitable network that can enable source and userinformation to be collected and processed as described below. It is tobe appreciated that the described embodiment constitutes but one exampleand is not intended to limit the invention to the specificallyillustrated architecture.

[0026]FIG. 1 shows a network system 10 in the form of a client/serversystem in accordance with one embodiment of the invention. Generally,system 10 includes one or more client processing devices 12 that areused by users or viewers, one or more notification servers 14, and oneor more sources 16 of electronic presentations. The client processingdevices 12, notification servers 14, and source 16 communicate with eachother over a data communications network. The illustrated communicationsnetwork is a public network such as the Internet. The datacommunications network can also include local-area networks and/orprivate wide-area networks, and can include both wired and wirelesssections. Client processing devices 12, server 14, and sources 16 cancommunicate with one another via any of a wide variety of knownprotocols.

[0027] In the context of this document, the terms “client” and “clientprocessing device” are intended to include, without limitation, any formof television set, enhanced television set (e.g. interactive TV orset-top box), computer or personal computer, or any other type ofcomputing device such as a hand-held machine. The term “user” refers toan individual or entity that uses a client processing device. The term“source” is intended to include, without limitation, any source that canproduce an electronic presentation that can be run or viewed on any ofthe exemplary client processing devices. In addition, the term“electronic presentation” is intended to include any and all types ofelectronic presentations that are capable of being run or displayed onthe exemplary client processing devices described above. Some examplesinclude, among others, television programs, multimedia streamingpresentations, and the like.

[0028] Client processing devices 12 are configured to generate userinformation that is provided by a user. The user information gives anindication of electronic presentations that might be of particularinterest to a particular user. The user information might also begathered by consulting a database that contains user information such asuser occupation, client processing device location, and the like. Theuser information can include a wide variety of information such as thetitles or names of particular electronic presentations, as well as keywords or subjects that might be of interest to a particular user. Forexample, a user on a client device might be interested in viewing anyelectronic presentations that discuss or are related to Bill Gates. Inthis instance the user information might just include “Bill Gates” as asubject. The user might alternately be interested in electronicpresentations that deal only with Beluga whales. In this instance theuser information might include “Beluga whales” as a subject.Alternately, and in the case of passively gathered user information(that is, user information that is not directly input by a user for thepurpose of determining desirable electronic presentations), there mightbe a database that contains information about various users or clientdevice locations. For example, a user might be a software developer andmight be interested in electronic presentations having to do withdeveloper conferences. Further, it might be known that a certain clientdevice is located in the Green Bay Wis. area. In that case, the user ofthe client device might be interested in receiving notifications aboutPacker games. The user information, whether provided by the user orascertained about the user, is collected and managed by notificationserver 14 in one or more databases 18.

[0029] As sources 16 are about to begin broadcasting, or duringbroadcasting of their particular electronic presentations, sourceinformation about the respective electronic presentations is sent to andreceived by the notification server 14. The source information ispreferably not the actual continuous play broadcast of the presentation,but rather describes one or more aspects of a particular “live”electronic presentation. This source information can be maintained indatabase 18 and used as the basis of a search of all of the registereduser information. The notification server 14 evaluates the sourceinformation against the user information and generates a notificationwhen it appears that an electronic presentation includes information ofinterest to a user. In the described embodiment, the source informationincludes so-called meta information which is essentially any type ofinformation that relates to a particular electronic presentation. Metainformation can have many forms. For example, meta information caninclude the title or name of a presentation and statements about thecontent of the presentation. Meta information can also include audio,visual, graphic or other types of information that can be derived froman electronic presentation. For example, scene changes in a particularelectronic presentation can be detected and rendered into metainformation that conveys the fact that a scene has changed. The metainformation can also include captured images of the electronicbroadcasts themselves. Other examples of meta information are givenbelow. The meta information can be rendered or generated manually orautomatically. In the manual case, an individual might observe abroadcast and type information about the broadcast into an encoder (e.g.“Bill Gates is speaking”). Alternately, various devices can be used toautomatically collect meta information, e.g. screen-capturing softwaremight intermittently capture images of a presentation and provide themto the server 14 for display for users who have registered for them.

[0030] In the described embodiment, notification server 14 receives boththe user and the source information and, if appropriate, places it intoa database 18. For example, in many instances it will be advantageous toplace the source information in the database. In other instances, sourceinformation might just be cached during searching. From there, thenotification server 14 is able to evaluate the source information andthe user information and ascertain whether any of the users need to benotified about electronic presentations for which they have registered.An exemplary notification server and database are described in moredetail in connection with FIG. 3 below.

[0031] Exemplary Computer System

[0032] Preliminarily, FIG. 2 shows a general example of a computer 130that can be used in accordance with the invention. The computer, oraspects thereof, can be used to implement the sources, notificationservers and the client processing devices.

[0033] Computer 130 includes one or more processors or processing units132, a system memory 134, and a bus 136 that couples various systemcomponents including the system memory 134 to processors 132. The bus136 represents one or more of any of several types of bus structures,including a memory bus or memory controller, a peripheral bus, anaccelerated graphics port, and a processor or local bus using any of avariety of bus architectures. The system memory 134 includes read onlymemory (ROM) 138 and random access memory (RAM) 140. A basicinput/output system (BIOS) 142, containing the basic routines that helpto transfer information between elements within computer 130, such asduring start-up, is stored in ROM 138.

[0034] Computer 130 further includes a hard disk drive 144 for readingfrom and writing to a hard disk (not shown), a magnetic disk drive 146for reading from and writing to a removable magnetic disk 148, and anoptical disk drive 150 for reading from or writing to a removableoptical disk 152 such as a CD ROM or other optical media. The hard diskdrive 144, magnetic disk drive 146, and optical disk drive 150 areconnected to the bus 136 by an SCSI interface 154 or some otherappropriate interface. The drives and their associated computer-readablemedia provide nonvolatile storage of computer-readable instructions,data structures, program modules and other data for computer 130.Although the exemplary environment described herein employs a hard disk,a removable magnetic disk 148 and a removable optical disk 152, itshould be appreciated by those skilled in the art that other types ofcomputer-readable media which can store data that is accessible by acomputer, such as magnetic cassettes, flash memory cards, digital videodisks, random access memories (RAMs), read only memories (ROMs), and thelike, may also be used in the exemplary operating environment.

[0035] A number of program modules may be stored on the hard disk 144,magnetic disk 148, optical disk 152, ROM 138, or RAM 140, including anoperating system 158, one or more application programs 160, otherprogram modules 162, and program data 164. A user may enter commands andinformation into computer 130 through input devices such as a keyboard166 and a pointing device 168. Other input devices (not shown) mayinclude a microphone, joystick, game pad, satellite dish, scanner, orthe like. These and other input devices are connected to the processingunit 132 through an interface 170 that is coupled to the bus 136. Amonitor 172 or other type of display device is also connected to the bus136 via an interface, such as a video adapter 174. In addition to themonitor, personal computers typically include other peripheral outputdevices (not shown) such as speakers and printers.

[0036] Computer 130 commonly operates in a networked environment usinglogical connections to one or more remote computers, such as a remotecomputer 176. The remote computer 176 may be another personal computer,a server, a router, a network PC, a peer device or other common networknode, and typically includes many or all of the elements described aboverelative to computer 130, although only a memory storage device 178 hasbeen illustrated in FIG. 2. The logical connections depicted in FIG. 2include a local area network (LAN) 180 and a wide area network (WAN)182. Such networking environments are commonplace in offices,enterprise-wide computer networks, intranets, and the Internet.

[0037] When used in a LAN networking environment, computer 130 isconnected to the local network 180 through a network interface oradapter 184. When used in a WAN networking environment, computer 130typically includes a modem 186 or other means for establishingcommunications over the wide area network 182, such as the Internet. Themodem 186, which may be internal or external, is connected to the bus136 via a serial port interface 156. In a networked environment, programmodules depicted relative to the personal computer 130, or portionsthereof, may be stored in the remote memory storage device. It will beappreciated that the network connections shown are exemplary and othermeans of establishing a communications link between the computers may beused.

[0038] Generally, the data processors of computer 130 are programmed bymeans of instructions stored at different times in the variouscomputer-readable storage media of the computer. Programs and operatingsystems are typically distributed, for example, on floppy disks orCD-ROMs. From there, they are installed or loaded into the secondarymemory of a computer. At execution, they are loaded at least partiallyinto the computer's primary electronic memory. The invention describedherein includes these and other various types of computer-readablestorage media when such media contain instructions or programs forimplementing the steps described below in conjunction with amicroprocessor or other data processor. The invention also includes thecomputer itself when programmed according to the methods and techniquesdescribed below.

[0039] For purposes of illustration, programs and other executableprogram components such as the operating system are illustrated hereinas discrete blocks, although it is recognized that such programs andcomponents reside at various times in different storage components ofthe computer, and are executed by the data processor(s) of the computer.

[0040] Encoders and Notification Server

[0041]FIG. 3 shows an exemplary notification server 14, source 16, anddatabase 18 in more detail. Notification server 14 includes one or moreregistration interfaces 20, an analysis/search engine 22 and a databasecontroller 24 that controls and maintains database 18. Source 16includes, in this example, an encoder 26.

[0042] It will be appreciated that encoder 26 can be a separate,non-integral component of the source. Encoder 26 receives live contentor presentations in the form of different media streams 17. Encoders 26can be dedicated media servers, or alternatively other moregeneral-purpose computer systems. These media streams 17 can beindividual media streams (e.g., audio, video, graphical, etc.), oralternatively can be composite media streams including two or more ofsuch individual streams. The media streams 17 can be provided to theencoders on a “live” basis from other data source components throughdedicated communications channels or through the Internet itself. Theencoder can also be a human being who is observing an electronicpresentation and rendering meta information about the presentation.

[0043] Encoders 26 coordinate the streaming of the live content to othercomponents on the network that request the content or notificationsthereof, such as client processing device 12. It is to be appreciatedthat although the media streams are referred to as being “live”, theremay be a delay (e.g., between one second and thirty seconds) between thetime of the actual event and the time the media streams reach theencoder(s).

[0044] There are various standards for streaming media content andcomposite media streams. “Advanced Streaming Format” (ASF) is an exampleof such a standard, including both accepted versions of the standard andproposed standards for future adoption. ASF specifies the way in whichmultimedia content is stored, streamed, and presented by the tools,servers, and clients of various multimedia vendors. ASF providesbenefits such as local and network playback, extensible media types,component download, scalable media types, prioritization of streams,multiple language support, environment independence, rich inter-streamrelationships, and expandability. Further details about ASF areavailable from Microsoft Corporation of Redmond, Wash.

[0045] Encoders 26 can transmit any type of presentation over thenetwork. This includes the source information that is used by thenotification server 14. Examples of such presentations includeaudio/video presentations (e.g., television broadcasts or presentationsfrom a “NetShow™” server (available from Microsoft Corp. of Redmond,Wash.)), video-only presentations, audio-only presentations, graphicalor animated presentations, etc.

[0046] Registration interface 20 is configured, in this example, toenable collection of both user information and source information. Thecollected user information is stored in database 18 in a userinformation database portion 28 that can be designated for holding onlyuser information. The source information is collected and can be storedin database 18 in a live content portion 30. The live content portion 30holds all of the source information that might be associated with aparticular electronic presentation.

[0047] Analysis/Search engine 22 performs all of the analysis andsearching that is necessary to enable appropriate notifications to begenerated and sent to a user. For example, as meta information arrivesfrom one or more of the sources 16, the database 18 is updated and asearch is conducted to identify all of the users, if any, who haveregistered for notifications. If a particular user is found to haveregistered for a notification when source information of a particulartype is detected, then an appropriate notification is generated and sentto the user or client processing device that requested the notification.

[0048] Exemplary Client Information Database

[0049]FIG. 4 illustrates entries in an exemplary user informationdatabase, such as database 28 (FIG. 3) generally at 200. In theillustrated example, four fields are provided, i.e. a client ID field202, a title field 204, a subject field 206, and a descriptiveinformation field 208. It is to be understood that this constitutes butone example of possible entries in a user information database. Otherentries are, of course, possible.

[0050] The user information database enables a user to register fornotifications for different electronic presentations that might bebroadcast by one or more sources, and/or notifications about particularevents that might occur within one or more electronic presentations.

[0051] The client ID field 202 holds the identification of each clientprocessing device or user. The identification is used when anotification is to be sent to a user. The identification can be a URL,email address, or any other suitable type of identification that enablesnotification server 14 to send a notification to a particular clientprocessing device or user. In the present example, there are four usersor clients who have registered for notifications. The clients arenumbered 1 through 4.

[0052] The title field 204 holds a title of the electronic presentationthat has been indicated by a user to be of interest. In the presentexample, clients or users 1, 2 and 4 have registered for notificationsregarding specific titled electronic presentations. Specifically, clientof user 1 has registered for notifications regarding the Microsoftcompany meeting; client or user 2 has registered for notificationsregarding the Seahawks football game; and client or user 4 hasregistered for notifications regarding the MTV Countdown of popularsongs. Client or user 3 has not registered for any notifications thatare associated with a particular titled electronic presentation. A goodreason for this is that client or user 3 might not know the title of aspecific electronic presentation that contains information of interest,as will become apparent just below.

[0053] The subject field 206 holds the subject of an electronicpresentation that may be of interest to a user. The subject field givesa user the flexibility to register for notifications for certainsubjects while not necessarily requiring the user to know the specifictitle of the electronic presentation. In the present example, client oruser 3 has registered for notifications associated with the subject ofan electronic presentation. Client 3 has registered for notificationsregarding any electronic presentation that deals with “Beluga whales”.The electronic presentations can come from any source. By registeringfor notifications dealing with a subject and not specifically a titledpresentation, client 3 will be notified when Beluga whales are the topicon any of the sources monitored by the notification server.

[0054] The descriptive information field 208 holds information that hasbeen specified by a user as being of interest to the user. By enteringspecific information in the descriptive information field, a user willbe notified when the specified events occur within the specifiedelectronic presentation. This can be in addition to an initialnotification that the electronic presentation is being broadcast. Forexample, client or user 1 has registered for notifications regarding theMicrosoft company meeting. When the Microsoft company meeting isbroadcast, a user or client will typically be notified of the start ofthe meeting. In addition, client 1 has indicated that they are onlyinterested in notifications when Steve Ballmer is talking. Thus, anotification will be generated to the client or user when Steve Ballmeris talking. Similarly, client 2 has registered for notificationsregarding the Seahawks games. Client 2 is only interested, however, innotifications associated with the events described in the DescriptiveInformation field 208, i.e. first downs, touchdowns, halftime, and endof game. Accordingly, notification server 14 will monitor the metainformation that is provided by the source of the Seahawks game andgenerate an appropriate notification to client or user 2 on theoccurrence of the specified events. Client or user 4, while beinginterested in the MTV Countdown of popular songs, is only interested inthe top two songs. Accordingly, client or user 4 has specifiedinformation in the Descriptive Information field 208 that will result innotifications only for the number 1 and 2 songs.

[0055] Exemplary Live Content Database

[0056]FIG. 5 illustrates entries in an exemplary live content database,such as database 30 (FIG. 3) generally at 210. The live content database210 maintains current, up-to-the-minute information on electronicpresentations that are about to be or are being broadcast by varioussources. The live content information that is managed in this databasecomes from or is associated with all of the many sources that aremonitored by the notification server 14. In the illustrated example,four fields are provided, i.e. a name/title field 212, a source field214, a topic field 216, and a descriptive information field 218. It isto be understood that this constitutes but one example of possibleentries in a live content database. Other entries are, of course,possible.

[0057] The name/title field 212 includes the name or title of thecurrent electronic presentation that is being broadcast by a source. Inthe illustrated example, four different sources are being monitored forelectronic broadcasts that include the Microsoft company meeting, WildPlanet, the American League Championship game, and the MTV Countdown. Asthese electronic presentations are being broadcast, meta information isregularly received by the notification server 14 that describes what istaking place during the broadcast. This information is used tocontinuously update the database so that client notifications can besent in a timely manner.

[0058] The source field 214 identifies the sources from which theelectronic presentations can be obtained.

[0059] The topic field 216 identifies the current topic of theelectronic presentation. For example, the topic currently beingdiscussed at the Microsoft company meeting is “Windows”. Similarly, thecurrent topic of the Wild Planet show is “lions”.

[0060] The descriptive information field 218 includes information thatdescribes the content of the corresponding presentation. Thisinformation can include one or more key words describing thepresentation. For example, the descriptive information describing theMicrosoft company meeting indicates that “Bill Gates is talking”.Similarly, the descriptive information for the Wild Planet broadcastindicates that “migration habits” and “hunting” are currently beingdiscussed. The descriptive information can include any information thatdescribes a current broadcast including a summary or abstract of thepresentation, or a textual transcript of the presentation.

[0061] The data or information for descriptive information field 218 canbe generated manually or automatically. Manual generation refers to anindividual (e.g., the presentation author) creating the data. Forexample, the author may write a summary or a list of key words for thepresentation and provide them to server (either directly or via anencoder 26).

[0062] Automatic generation refers to one of the components, such as anencoder 26 or server 14, using any of a variety of mechanisms togenerate data describing the presentation as the presentation occurs.For example, a conventional key word generation process may be employedto identify key words from the presentation. This may be carried out byan encoder 26, server 14, or some other component coupled to thenetwork. By way of another example, closed captioning information may beused as the data, or a conventional speech-to-text conversion processmay be used to convert audio data into text data.

[0063] The information maintained in the live content database 30 isused by analysis/search engine 22 (FIG. 3) to evaluate and search userinformation from users of the client processing devices 12 (FIG. 1). Auser provides, as part of his or her user information, a set of criteriaand which fields the criteria should be applied to. Examples of suchcriteria were given above in connection with FIG. 4. The user canprovide such criteria via any of a wide variety of conventional inputmechanisms, such as a graphical user interface (GUI), an example ofwhich is discussed below. In the illustrated example, the user is ableto search any of the fields in live content database 30. Analysis/searchengine 22 compares the user-provided criteria to each entry (entries212-218) in the database 30, or vice versa, to determine whether theelectronic presentation corresponding to the entry satisfies the usercriteria. Any of a variety of conventional searching algorithms andmethodologies can be used. For example, any entry with at least one wordmatching one of the user criteria may satisfy the search request, or, anentry may be required to include every word in the search criteria inorder to satisfy the search request, etc.

[0064] Information regarding electronic presentations that satisfies anyof the user-specified criteria is provided to the client processingdevice 12 of the user that placed the request. Such information may bethe entire entry from database 30 (e.g. one or more of the row entriesof FIG. 5), or alternatively, a selected portion (e.g., the title field212 and source field 214 for the entry). The source field 214 isprovided to the client processing device to allow the user tosubsequently request is the presentation, for example via the clientprocessing device, from the appropriate source or encoder. In theillustrated example, the data in source field 214 can comprise a uniformresource locator (URL) that identifies a particular presentationavailable from a particular encoder. A user can accordingly click a linkto the URL and be automatically connected to the presentation.

[0065] Information from each entry that satisfies the user criteria isprovided to the user and, if multiple entries satisfy each criteria,then the user can select one or more presentations based on thisinformation. Alternatively, server 14 may rank the entries based on howwell they match the user criteria and return information for only thehighest ranking entry (or entries) to the user.

[0066] In Operation

[0067]FIG. 6 shows a flow diagram that describes steps in a notificationmethod in accordance with the described embodiment. Step 300 receivesuser information from one or more users. The user information gives anindication of electronic presentations that might be of particularinterest to a user. The user information can be collected in any numberof ways. For example, users can interface with a suitable notificationserver 14 (FIG. 1) using a client processing device. With the clientprocessing device, a user can enter various criteria upon whichnotifications are to take place. Alternately, there might be a databasethat maintains a collection of information about particular users, e.g.user occupation, geographical location, user viewing habits, that formthe criteria upon which notifications take place. Step 302 uses the userinformation to build a user information database 28 (FIG. 3).

[0068] Step 304 monitors one or more sources of electronicpresentations. Monitoring can take place in any suitable way. In thedescribed embodiment, monitoring takes place through the use of anetwork, such as the Internet, that connects the sources and one or morenotifications servers together. In the illustrated example, sourceinformation is developed pertaining to the electronic presentations thatare currently being broadcast (or are about to be broadcast) by thesources. The source information can be received directly from a sourceor, alternately, from an encoder that is associated with a source.Examples of the various types of source information that can be receivedare given above.

[0069] Step 306 determines whether any source information is received.In the described example, source information can be received when abroadcast is about to begin, as well as throughout the broadcast itself.The source information that is received during the source's broadcast ofan electronic presentation can describe various events that can occurwithin a particular presentation. Examples of such events were givenabove in connection with FIG. 5. When source information is received,step 308 evaluates the source information against the user information.The source information can, for example, be compared against the userinformation to determine whether any of the users need to be notifiedregarding one or more of the electronic presentations. If, as a resultof the evaluation of step 308, it appears that one or more users need tobe notified (step 310), then step 312 generates and sends an appropriatenotification. Any suitable notifications can be used. The notificationscontain an indication that a particular electronic presentation that isbeing broadcast might contain information of interest to the client. Forexample, a small icon or flashing bulb might pop up on a clientprocessing device. Additionally, notifications can be sent via email,facsimile or pager to name just a few. The function of the notificationis to attempt to inform a user that an electronic presentation has beenfound that might be of potential interest to the user. In one aspect ofthe invention, and in the event that a user does not receive thenotification or, has opted to record a particular presentation, anelectronic presentation that is the subject of a notification can beautomatically recorded for a user for subsequent viewing.

[0070] In this way, information that is generated before, during andconcerning various electronic presentations from a number of differentsources can be monitored. The generated information is processed todetermine whether any of a number of different users would be interestedin viewing at least a portion of a particular electronic presentation.In the described embodiment, the generated information is processed byone or more notification servers 14 that compare the generatedinformation with user information provided by one or more users. Theinformation concerning the various electronic presentations can beperiodically updated and subsequently used to search the userinformation. Thus, users can be continuously updated on a number ofdifferent electronic presentations without having to physically connectto the sources of the electronic presentations for continuous play. Thisis advantageous and constitutes a much desired improvement over previoussystems and methods for a number of reasons. First, a user can monitormany different electronic presentations on various media (e.g.television, client/server computer system etc.) without having tophysically view each or any of them. This means that users have a muchgreater breadth in the number of shows that can be monitored. Inaddition, once the user information database is established, a user cango about their business and forget that they have even registered fornotifications. The notifications are automatically generated and sent tothe user thereby alleviating the monitoring burden from the user.Furthermore, the granularity at which the notifications are generatedare at a level that the user can truly isolate events of interest and benotified only when those events occur, e.g. events within a particularelectronic presentation. Other advantages will be apparent to those ofskill in the art.

[0071] User Interfaces

[0072] In one implementation, one or more user interfaces are providedand advantageously interface with a user. The user interfaces areconfigured to allow a user to both provide user information to thenotification server, and to allow the notification server to provideinformation, such as monitored source information, to a user or clientprocessing device. The information exchange protocol that is employedcan comprise any suitable protocol that is capable of establishingcommunication and information exchange between the client processingdevices 12 and the notification server(s) 14. One protocol that has beenparticularly useful in the context of a network such as the Internet isone based upon Extensible Markup Language (XML). Extensible MarkupLanguage (XML) is a meta-markup language that provides a format fordescribing structured data. XML is similar to HTML in that it is atag-based language. XML is a derivative of Standard Generalized MarkupLanguage (SGML) that provides a uniform method for describing andexchanging structured data in an open, text-based format. XML utilizesthe concepts of elements and namespaces. Compared to HTML, which is adisplay-oriented markup language, XML is a general-purpose language usedto represent structured data without including information thatdescribes how to format the data for display. More recently, XML hasemerged as a desired protocol for communication between client/serversystems.

[0073]FIG. 7 shows an exemplary user interface unit generally at 400.User interface unit 400 can comprise an integral part of a clientprocessing device 12, or can be separate from the client processingdevice. The illustrated interface unit 400 includes a processor 402,volatile memory 404, and program memory 406. The user interface unit hasa receiver (not shown) for receiving source information from thenotification server 14. That is, as the notification server evaluatesthe source information that it receives, it generates, when appropriate,notifications for the various client processing devices. When the serversends the notifications, the notifications can be received by the userinterface unit and rendered into a display for the user to view. In oneimplementation, the client processing device runs an operating system408 which supports multiple applications. The operating system 408 isstored in memory and executes on the processor 402. The operating systemcan advantageously be a multitasking operating system which allowssimultaneous execution of multiple applications. The operating system408 employs a graphical user interface windowing environment whichpresents the applications or documents in specially delineated areas ofa display screen called “windows.”One exemplary operating system is aWindows® brand operating system sold by Microsoft Corporation, such asWindows® 95 or Windows® NT or other derivative versions of Windows®.However, other operating systems which provide windowing environmentscan be employed, such as the Macintosh operating system from AppleComputer, Inc. and the OS/2 operating system from IBM.

[0074] Registration Interface

[0075] An input application 410 is stored in the program memory 406 andexecutes on the processor to render a user display or registrationinterface that enables a user to input information of interest that canbe used by the notification server 14 to build and maintain its userinformation database 28. This information can also be used by thenotification server to conduct the appropriate searches when it receivesthe source information as described above. It will be appreciated thatthe input application 410 may also be a monitoring application thatmonitors a user's viewing habits and provides information to thenotification server pertaining the viewing habits. This can allow thenotification server to maintain statistics on a user's viewing habits sothat the user can be notified, when appropriate, of electronicpresentations that conform to their established viewing habits.

[0076]FIG. 8 shows an exemplary registration interface 414 that can berendered by input application 410 and displayed on a client processingdevice 12. The interface 414 presents a number of different selectionfields that enable a user to select one or more electronic presentationsfor which monitoring will take place. In the illustrated example, theselection fields include a title field 416, a subject field 418, and adescriptive information field 420. Other fields are possible. Thesefields allow a user to enter information that pertains to electronicpresentations in which they might be interested. For example, a user canenter a title of a particular program in the title field 416.Alternately or in addition, a user can enter a subject in the subjectfield 418. Alternately or in addition, a user can enter descriptiveinformation in the descriptive information field 420. This informationcorresponds to the fields that are defined for the client informationdatabase discussed above in connection with FIG. 4.

[0077] A notification method field 422 can also be provided to give theuser the ability to select the type of notification that they are toreceive. In the illustrated example, there are four types ofnotification that the user can select, i.e. email, fax, pager, andother. These selections can reference additional fields so that theappropriate information can be entered by the user. Once all of theinformation has been entered by a user, they can simply click the “send”button which sends the information to the notification server 14. In oneimplementation, the client information is bundled up as an XML datapacket that it sent to and processed by the notification server 14. Thenotification server can then go about the process of entering theinformation into the user information database (FIGS. 3 and 4).

[0078] Monitoring Interface

[0079] When all of the user information has been collected and storedfor a particular user, the notification server 14 can then begin tomonitor the source information for the particular electronicpresentations that have been specified by the user. When thenotification server 14 detects an electronic presentation that fits withuser-registered information, it generates and sends a notification tothe appropriate client processing device or user. The client processingdevice or user interface can then take the notification and render itinto information that is displayed for the user.

[0080]FIG. 7 shows a monitoring table application 412 stored in theprogram memory 306. The monitoring table application executes on theprocessor to control the information that is ultimately displayed for auser on their client processing device. The information that isdisplayed gives indicia that is associated with electronic presentationsthat have been selected by a user and that are currently being broadcastby a source. The monitoring application 412 enables indicia to bedisplayed for a user without requiring that the selected electronicpresentations be continuously played for the user. In this way, selectedelectronic presentations are automatically monitored and notificationsare generated, when appropriate, when certain presentations or portionsthereof are broadcast. The monitoring application 412 can interface withother applications in order to receive and manage the information thatis to be displayed for the user. These other applications can be storedin the program memory 406 and can include various text, graphics, andimage-capturing applications to name just a few.

[0081]FIG. 9 shows an exemplary monitoring table interface 424 that canbe rendered by monitoring table application 412 and displayed on aclient processing device 12. The monitoring table interface 424 presentsa number of fields that enable a user to be informed on the status ofelectronic presentations for which they have registered fornotification. In the illustrated example, a title field 426 holds thetitle of one or more electronic presentations for which a user hasregistered. An events field 428 holds indicia of events that can occurwithin one or more of the electronic presentations. This indicia can betextual, graphic, audio and/or visual to name just a few. An image field430 is provided for holding captured images of an event that can occurwithin one or more of the electronic presentations. For example, anencoder can take a picture of a particular event and form a JPEG imageof the picture. The JPEG image can then be pushed to the notificationserver which, in turn, can provide the image to those clients that haveregistered for a presentation that is associated with the image. TheJPEG image can be displayed in the image field 430 so that a user cankeep updated on the status of the presentation without being physicallyconnected to the source of the presentation for continuous viewing.

[0082] In addition, a number of tabs 432 are provided and enable a userto click through various information displays. In the illustratedexample, four such tabs are provided and include a “Now” tab, a “Rec.”tab (for “Recorded), a “Future“tab, and a “Reg.” tab ( for“Registered”). The “Now” tab enables a user to access what is currentlybeing monitored by the notification server 14. This might include all ofthe electronic presentations that are being monitored, in addition tothe ones that are the subject of the current user's registrations. The“Rec.” tab allows a user to access a list of electronic presentationsthat might have been recorded for the user. For example, if a usernotification is sent to a user, but is not acknowledged, the user mayhave set a default “record” setting that provides for the presentationto be recorded for future viewing. The “Future” tab allows a user toaccess a list of presentations/events that have been registered for bythe user for some time in the future. The user can then be given theopportunity to edit their choices such as by unregistering for certainpresentations or events, or by changing the parameters associated withone or more presentation or event. The “Reg.” tab allows a user toaccess a list of presentations and events that they are currentlyregistered for, and which are currently being broadcast. In the presentexample, two presentations for which the user has registered arecurrently being broadcast, i.e. Wild Planet and MTV Countdown. In thecase of the Wild Planet presentation, the current event is “lions” andtheir migration habits. Recall that in the FIG. 4 example, the userregistered for notification in such an instance where Beluga whales werethe topic of the Wild Planet presentation. In this instance, nonotification would be generated and sent to the user by the notificationserver 14. With respect to the MTV Countdown presentation, the “event”field indicates that the countdown is currently on the No. 6 song andthat Madonna is artist. When the countdown reaches the number 2 song, anotification will be generated and sent by the notification server tothe user. This can be the case even though the user may have their userinterface 424 pulled up.

[0083] Various aspects of the invention provide an interactive, robustuser tool that enables a user to register for notifications pertainingto many different electronic presentations that can originate from manydifferent sources. Users can adjust the granularity at which thenotifications occur by registering for certain events that might occurduring an electronic presentation. Novel use of real time metainformation (source information) is made to enable various electronicpresentations to be monitored live or in real time so that timelynotifications can be sent to those users who have registered for certainevents. Users can thus have many different electronic presentationsmonitored without having to physically connect to the sources forcontinuous play. Source information can include information that ispulled from various sources or information that is pushed from varioussources.

[0084] Although the invention has been described in language specific tostructural features and/or methodological steps, it is to be understoodthat the invention defined in the appended claims is not necessarilylimited to the specific features or steps described. Rather, thespecific features and steps are disclosed as preferred forms ofimplementing the claimed invention.

1. A method comprising: receiving source information from at least onesource of one or more television programs, the source informationdescribing one or more broadcast events that can occur during a timeperiod within which television programs are broadcast; evaluating thesource information against user information that gives an indication ofbroadcast events that are of interest to a user; and making one or morebroadcast events available to one or more users if, as a result of saidevaluating, it appears that the one or more users would be interested insaid one or more broadcast events.
 2. The method of claim 1, wherein oneor more broadcast events do not pertain to information associated withthe television programs.
 3. The method of claim 1, wherein the act ofmaking comprises displaying one or more broadcast events for a user. 4.The method of claim 1, wherein the act of making comprises recording oneor more broadcast events for a user.
 5. The method of claim 1, whereinsaid acts are performed by a television set.
 6. The method of claim 1,wherein said acts are performed by a set-top box.
 7. A methodcomprising: receiving source information from at least one source of oneor more television programs, the source information describing one ormore broadcast events that can occur during a time period within whichthe television programs are broadcast; evaluating the source informationagainst user information that gives an indication of broadcast eventsthat are of interest to a user; and making one or more broadcast eventsavailable to one or more users if, as a result of said evaluating, itappears that the one or more users would be interested in said one ormore broadcast events, said act of making being performed independent ofwhether a user is operating a television on which the televisionprograms can be played.
 8. The method of claim 7, wherein one or morebroadcast events do not pertain to information associated with thetelevision programs.
 9. The method of claim 7, wherein said act ofmaking comprises recording one or more broadcast events for a user. 10.The method of claim 7, wherein said acts are performed by a televisionset.
 11. The method of claim 7, wherein said acts are performed by aset-top box.
 12. A method comprising: receiving user information from auser, the user information describing one or more broadcast events thatcan occur during a time period in which television programs arebroadcast; receiving source information from one or more sources oftelevision programs; evaluating the source information to determinewhether any of the one or more broadcast events that have been specifiedby a user occur; and if one or more broadcast events occur, making anoccurring broadcast event available for a user to watch.
 13. The methodof claim 12, wherein said act of making comprises generating and sendinga notification to the user.
 14. The method of claim 12, wherein said actof making comprises recording an occurring broadcast event.
 15. Themethod of claim 12, wherein said acts of receiving source information,evaluating and making occur independent of whether a television on whichprograms can be played is turned on for playing programs.
 16. The methodof claim 12, wherein said acts of receiving source information,evaluating and making are performed by a television.
 17. The method ofclaim 12, wherein said acts of receiving, evaluating and making areperformed by a set top box.
 18. The method of claim 12, wherein saidacts of receiving source information, evaluating and making areperformed relative to a television program that the user is notcurrently watching.
 19. The method of claim 12, wherein said acts ofreceiving source information, evaluating and making are performedrelative to a television program that the user is not currently watchingand during a time period when a different television program is playingon a television.
 20. A method comprising: receiving source informationfrom at least one source of one or more television programs, the sourceinformation describing one or more subjects that can occur during a timeperiod within which the television programs are broadcast; evaluatingthe source information against user information that gives an indicationof subjects that are of interest to a user; and making one or moresubjects available to one or more users if, as a result of saidevaluating, it appears that the one or more users would be interested insaid one or more subjects.
 21. The method of claim 20, wherein said oneor more subjects do not pertain to subjects presented in the televisionprograms.
 22. The method of claim 20, wherein said one or more subjectscomprise subjects presented outside of the television programs.
 23. Themethod of claim 20, wherein said act of making comprises displayinginformation associated with one or more subjects for a user.
 24. Themethod of claim 20, wherein said act of making comprises recordinginformation associated with one or more subjects for a user.
 25. Themethod of claim 20, wherein said acts are performed by a television set.26. The method of claim 20, wherein said acts are performed by a set-topbox.
 27. A method comprising: receiving source information from at leastone source of one or more television programs, the source informationdescribing one or more subjects that can occur during a time periodwithin which the television programs are broadcast; evaluating thesource information against user information that gives an indication ofsubjects that are of interest to a user; and making one or more subjectsavailable to one or more users if, as a result of said evaluating, itappears that the one or more users would be interested in said one ormore subjects, said act of making being performed independent of whethera user is watching a television program as it is being broadcast. 28.The method of claim 27, wherein said one or more subjects do not pertainto information presented by the television program.
 29. The method ofclaim 27, wherein said act of making comprises recording informationassociated with one or more subjects for a user.
 30. The method of claim27, wherein said acts are performed by a television set.
 31. The methodof claim 27, wherein said acts are performed by a set-top box.
 32. Amethod comprising: receiving user information from a user, the userinformation describing one or more subjects that can occur during a timeperiod in which television programs are broadcast; receiving sourceinformation from a source of television programs; evaluating the sourceinformation to determine whether any of the one or more subjects thathave been specified by a user occur; and in an event one or moresubjects occur, making information associated with an occurring subjectavailable for a user to watch.
 33. The method of claim 32, wherein saidact of making comprises generating and sending a notification to theuser.
 34. The method of claim 32, wherein said act of making comprisesrecording information associated with said one or more subjects.
 35. Themethod of claim 32, wherein said acts of receiving source information,evaluating and making occur independent of whether a user is watchingtelevision programs.
 36. The method of claim 32, wherein said acts ofreceiving source information, evaluating and making are performed by atelevision.
 37. The method of claim 32, wherein said acts of receiving,evaluating and making are performed by a set top box.
 38. The method ofclaim 32, wherein said acts of receiving source information, evaluatingand making are performed relative to a television program that the useris not currently watching.
 39. The method of claim 32, wherein said actsof receiving source information, evaluating and making are performedrelative to a television program that the user is not currently watchingand during a time period when a different television program is runningon a television.